#pragma once

// DO NOT REMOVE, exists to avoid private/public headers mixing!
#ifndef UTILITY_CRC_TABLES_HPP
#define UTILITY_CRC_TABLES_HPP

#include <tacklelib/tacklelib.hpp>

#include <tacklelib/utility/platform_features.hpp>

#include <cstdint>


namespace utility
{
  static CONSTEXPR uint16_t g_crc16_1021[256] = {
      0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
      0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
      0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
      0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
      0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
      0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
      0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
      0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
      0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
      0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
      0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
      0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
      0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
      0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
      0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
      0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
      0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
      0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
      0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
      0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
      0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
      0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
      0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
      0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
      0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
      0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
      0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
      0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
      0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
      0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
      0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
      0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78
  };

  static CONSTEXPR uint16_t g_crc16_8005[256] = {
      0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241,
      0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440,
      0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40,
      0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841,
      0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40,
      0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41,
      0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641,
      0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040,
      0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240,
      0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441,
      0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41,
      0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840,
      0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41,
      0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40,
      0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640,
      0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041,
      0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240,
      0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441,
      0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41,
      0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840,
      0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41,
      0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40,
      0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640,
      0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041,
      0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241,
      0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440,
      0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40,
      0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841,
      0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40,
      0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41,
      0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641,
      0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040
  };

  static CONSTEXPR uint16_t g_crc16_C867[256] = {
      0x0000, 0x5a7a, 0xb4f4, 0xee8e, 0xa5cf, 0xffb5, 0x113b, 0x4b41,
      0x87b9, 0xddc3, 0x334d, 0x6937, 0x2276, 0x780c, 0x9682, 0xccf8,
      0xc355, 0x992f, 0x77a1, 0x2ddb, 0x669a, 0x3ce0, 0xd26e, 0x8814,
      0x44ec, 0x1e96, 0xf018, 0xaa62, 0xe123, 0xbb59, 0x55d7, 0x0fad,
      0x4a8d, 0x10f7, 0xfe79, 0xa403, 0xef42, 0xb538, 0x5bb6, 0x01cc,
      0xcd34, 0x974e, 0x79c0, 0x23ba, 0x68fb, 0x3281, 0xdc0f, 0x8675,
      0x89d8, 0xd3a2, 0x3d2c, 0x6756, 0x2c17, 0x766d, 0x98e3, 0xc299,
      0x0e61, 0x541b, 0xba95, 0xe0ef, 0xabae, 0xf1d4, 0x1f5a, 0x4520,
      0x951a, 0xcf60, 0x21ee, 0x7b94, 0x30d5, 0x6aaf, 0x8421, 0xde5b,
      0x12a3, 0x48d9, 0xa657, 0xfc2d, 0xb76c, 0xed16, 0x0398, 0x59e2,
      0x564f, 0x0c35, 0xe2bb, 0xb8c1, 0xf380, 0xa9fa, 0x4774, 0x1d0e,
      0xd1f6, 0x8b8c, 0x6502, 0x3f78, 0x7439, 0x2e43, 0xc0cd, 0x9ab7,
      0xdf97, 0x85ed, 0x6b63, 0x3119, 0x7a58, 0x2022, 0xceac, 0x94d6,
      0x582e, 0x0254, 0xecda, 0xb6a0, 0xfde1, 0xa79b, 0x4915, 0x136f,
      0x1cc2, 0x46b8, 0xa836, 0xf24c, 0xb90d, 0xe377, 0x0df9, 0x5783,
      0x9b7b, 0xc101, 0x2f8f, 0x75f5, 0x3eb4, 0x64ce, 0x8a40, 0xd03a,
      0xe613, 0xbc69, 0x52e7, 0x089d, 0x43dc, 0x19a6, 0xf728, 0xad52,
      0x61aa, 0x3bd0, 0xd55e, 0x8f24, 0xc465, 0x9e1f, 0x7091, 0x2aeb,
      0x2546, 0x7f3c, 0x91b2, 0xcbc8, 0x8089, 0xdaf3, 0x347d, 0x6e07,
      0xa2ff, 0xf885, 0x160b, 0x4c71, 0x0730, 0x5d4a, 0xb3c4, 0xe9be,
      0xac9e, 0xf6e4, 0x186a, 0x4210, 0x0951, 0x532b, 0xbda5, 0xe7df,
      0x2b27, 0x715d, 0x9fd3, 0xc5a9, 0x8ee8, 0xd492, 0x3a1c, 0x6066,
      0x6fcb, 0x35b1, 0xdb3f, 0x8145, 0xca04, 0x907e, 0x7ef0, 0x248a,
      0xe872, 0xb208, 0x5c86, 0x06fc, 0x4dbd, 0x17c7, 0xf949, 0xa333,
      0x7309, 0x2973, 0xc7fd, 0x9d87, 0xd6c6, 0x8cbc, 0x6232, 0x3848,
      0xf4b0, 0xaeca, 0x4044, 0x1a3e, 0x517f, 0x0b05, 0xe58b, 0xbff1,
      0xb05c, 0xea26, 0x04a8, 0x5ed2, 0x1593, 0x4fe9, 0xa167, 0xfb1d,
      0x37e5, 0x6d9f, 0x8311, 0xd96b, 0x922a, 0xc850, 0x26de, 0x7ca4,
      0x3984, 0x63fe, 0x8d70, 0xd70a, 0x9c4b, 0xc631, 0x28bf, 0x72c5,
      0xbe3d, 0xe447, 0x0ac9, 0x50b3, 0x1bf2, 0x4188, 0xaf06, 0xf57c,
      0xfad1, 0xa0ab, 0x4e25, 0x145f, 0x5f1e, 0x0564, 0xebea, 0xb190,
      0x7d68, 0x2712, 0xc99c, 0x93e6, 0xd8a7, 0x82dd, 0x6c53, 0x3629
  };

  static CONSTEXPR uint16_t g_crc16_0589[256] = {
      0x0000, 0x49f3, 0x93e6, 0xda15, 0x048d, 0x4d7e, 0x976b, 0xde98,
      0x091a, 0x40e9, 0x9afc, 0xd30f, 0x0d97, 0x4464, 0x9e71, 0xd782,
      0x1234, 0x5bc7, 0x81d2, 0xc821, 0x16b9, 0x5f4a, 0x855f, 0xccac,
      0x1b2e, 0x52dd, 0x88c8, 0xc13b, 0x1fa3, 0x5650, 0x8c45, 0xc5b6,
      0x2468, 0x6d9b, 0xb78e, 0xfe7d, 0x20e5, 0x6916, 0xb303, 0xfaf0,
      0x2d72, 0x6481, 0xbe94, 0xf767, 0x29ff, 0x600c, 0xba19, 0xf3ea,
      0x365c, 0x7faf, 0xa5ba, 0xec49, 0x32d1, 0x7b22, 0xa137, 0xe8c4,
      0x3f46, 0x76b5, 0xaca0, 0xe553, 0x3bcb, 0x7238, 0xa82d, 0xe1de,
      0x48d0, 0x0123, 0xdb36, 0x92c5, 0x4c5d, 0x05ae, 0xdfbb, 0x9648,
      0x41ca, 0x0839, 0xd22c, 0x9bdf, 0x4547, 0x0cb4, 0xd6a1, 0x9f52,
      0x5ae4, 0x1317, 0xc902, 0x80f1, 0x5e69, 0x179a, 0xcd8f, 0x847c,
      0x53fe, 0x1a0d, 0xc018, 0x89eb, 0x5773, 0x1e80, 0xc495, 0x8d66,
      0x6cb8, 0x254b, 0xff5e, 0xb6ad, 0x6835, 0x21c6, 0xfbd3, 0xb220,
      0x65a2, 0x2c51, 0xf644, 0xbfb7, 0x612f, 0x28dc, 0xf2c9, 0xbb3a,
      0x7e8c, 0x377f, 0xed6a, 0xa499, 0x7a01, 0x33f2, 0xe9e7, 0xa014,
      0x7796, 0x3e65, 0xe470, 0xad83, 0x731b, 0x3ae8, 0xe0fd, 0xa90e,
      0x91a0, 0xd853, 0x0246, 0x4bb5, 0x952d, 0xdcde, 0x06cb, 0x4f38,
      0x98ba, 0xd149, 0x0b5c, 0x42af, 0x9c37, 0xd5c4, 0x0fd1, 0x4622,
      0x8394, 0xca67, 0x1072, 0x5981, 0x8719, 0xceea, 0x14ff, 0x5d0c,
      0x8a8e, 0xc37d, 0x1968, 0x509b, 0x8e03, 0xc7f0, 0x1de5, 0x5416,
      0xb5c8, 0xfc3b, 0x262e, 0x6fdd, 0xb145, 0xf8b6, 0x22a3, 0x6b50,
      0xbcd2, 0xf521, 0x2f34, 0x66c7, 0xb85f, 0xf1ac, 0x2bb9, 0x624a,
      0xa7fc, 0xee0f, 0x341a, 0x7de9, 0xa371, 0xea82, 0x3097, 0x7964,
      0xaee6, 0xe715, 0x3d00, 0x74f3, 0xaa6b, 0xe398, 0x398d, 0x707e,
      0xd970, 0x9083, 0x4a96, 0x0365, 0xddfd, 0x940e, 0x4e1b, 0x07e8,
      0xd06a, 0x9999, 0x438c, 0x0a7f, 0xd4e7, 0x9d14, 0x4701, 0x0ef2,
      0xcb44, 0x82b7, 0x58a2, 0x1151, 0xcfc9, 0x863a, 0x5c2f, 0x15dc,
      0xc25e, 0x8bad, 0x51b8, 0x184b, 0xc6d3, 0x8f20, 0x5535, 0x1cc6,
      0xfd18, 0xb4eb, 0x6efe, 0x270d, 0xf995, 0xb066, 0x6a73, 0x2380,
      0xf402, 0xbdf1, 0x67e4, 0x2e17, 0xf08f, 0xb97c, 0x6369, 0x2a9a,
      0xef2c, 0xa6df, 0x7cca, 0x3539, 0xeba1, 0xa252, 0x7847, 0x31b4,
      0xe636, 0xafc5, 0x75d0, 0x3c23, 0xe2bb, 0xab48, 0x715d, 0x38ae };

  static CONSTEXPR uint16_t g_crc16_3D65[256] = {
      0x0000, 0x365e, 0x6cbc, 0x5ae2, 0xd978, 0xef26, 0xb5c4, 0x839a,
      0xff89, 0xc9d7, 0x9335, 0xa56b, 0x26f1, 0x10af, 0x4a4d, 0x7c13,
      0xb26b, 0x8435, 0xded7, 0xe889, 0x6b13, 0x5d4d, 0x07af, 0x31f1,
      0x4de2, 0x7bbc, 0x215e, 0x1700, 0x949a, 0xa2c4, 0xf826, 0xce78,
      0x29af, 0x1ff1, 0x4513, 0x734d, 0xf0d7, 0xc689, 0x9c6b, 0xaa35,
      0xd626, 0xe078, 0xba9a, 0x8cc4, 0x0f5e, 0x3900, 0x63e2, 0x55bc,
      0x9bc4, 0xad9a, 0xf778, 0xc126, 0x42bc, 0x74e2, 0x2e00, 0x185e,
      0x644d, 0x5213, 0x08f1, 0x3eaf, 0xbd35, 0x8b6b, 0xd189, 0xe7d7,
      0x535e, 0x6500, 0x3fe2, 0x09bc, 0x8a26, 0xbc78, 0xe69a, 0xd0c4,
      0xacd7, 0x9a89, 0xc06b, 0xf635, 0x75af, 0x43f1, 0x1913, 0x2f4d,
      0xe135, 0xd76b, 0x8d89, 0xbbd7, 0x384d, 0x0e13, 0x54f1, 0x62af,
      0x1ebc, 0x28e2, 0x7200, 0x445e, 0xc7c4, 0xf19a, 0xab78, 0x9d26,
      0x7af1, 0x4caf, 0x164d, 0x2013, 0xa389, 0x95d7, 0xcf35, 0xf96b,
      0x8578, 0xb326, 0xe9c4, 0xdf9a, 0x5c00, 0x6a5e, 0x30bc, 0x06e2,
      0xc89a, 0xfec4, 0xa426, 0x9278, 0x11e2, 0x27bc, 0x7d5e, 0x4b00,
      0x3713, 0x014d, 0x5baf, 0x6df1, 0xee6b, 0xd835, 0x82d7, 0xb489,
      0xa6bc, 0x90e2, 0xca00, 0xfc5e, 0x7fc4, 0x499a, 0x1378, 0x2526,
      0x5935, 0x6f6b, 0x3589, 0x03d7, 0x804d, 0xb613, 0xecf1, 0xdaaf,
      0x14d7, 0x2289, 0x786b, 0x4e35, 0xcdaf, 0xfbf1, 0xa113, 0x974d,
      0xeb5e, 0xdd00, 0x87e2, 0xb1bc, 0x3226, 0x0478, 0x5e9a, 0x68c4,
      0x8f13, 0xb94d, 0xe3af, 0xd5f1, 0x566b, 0x6035, 0x3ad7, 0x0c89,
      0x709a, 0x46c4, 0x1c26, 0x2a78, 0xa9e2, 0x9fbc, 0xc55e, 0xf300,
      0x3d78, 0x0b26, 0x51c4, 0x679a, 0xe400, 0xd25e, 0x88bc, 0xbee2,
      0xc2f1, 0xf4af, 0xae4d, 0x9813, 0x1b89, 0x2dd7, 0x7735, 0x416b,
      0xf5e2, 0xc3bc, 0x995e, 0xaf00, 0x2c9a, 0x1ac4, 0x4026, 0x7678,
      0x0a6b, 0x3c35, 0x66d7, 0x5089, 0xd313, 0xe54d, 0xbfaf, 0x89f1,
      0x4789, 0x71d7, 0x2b35, 0x1d6b, 0x9ef1, 0xa8af, 0xf24d, 0xc413,
      0xb800, 0x8e5e, 0xd4bc, 0xe2e2, 0x6178, 0x5726, 0x0dc4, 0x3b9a,
      0xdc4d, 0xea13, 0xb0f1, 0x86af, 0x0535, 0x336b, 0x6989, 0x5fd7,
      0x23c4, 0x159a, 0x4f78, 0x7926, 0xfabc, 0xcce2, 0x9600, 0xa05e,
      0x6e26, 0x5878, 0x029a, 0x34c4, 0xb75e, 0x8100, 0xdbe2, 0xedbc,
      0x91af, 0xa7f1, 0xfd13, 0xcb4d, 0x48d7, 0x7e89, 0x246b, 0x1235 };

  static CONSTEXPR uint16_t g_crc16_8BB7[256] = {
      0x0000, 0x8d5c, 0xc11b, 0x4c47, 0x5995, 0xd4c9, 0x988e, 0x15d2,
      0xb32a, 0x3e76, 0x7231, 0xff6d, 0xeabf, 0x67e3, 0x2ba4, 0xa6f8,
      0xbdf7, 0x30ab, 0x7cec, 0xf1b0, 0xe462, 0x693e, 0x2579, 0xa825,
      0x0edd, 0x8381, 0xcfc6, 0x429a, 0x5748, 0xda14, 0x9653, 0x1b0f,
      0xa04d, 0x2d11, 0x6156, 0xec0a, 0xf9d8, 0x7484, 0x38c3, 0xb59f,
      0x1367, 0x9e3b, 0xd27c, 0x5f20, 0x4af2, 0xc7ae, 0x8be9, 0x06b5,
      0x1dba, 0x90e6, 0xdca1, 0x51fd, 0x442f, 0xc973, 0x8534, 0x0868,
      0xae90, 0x23cc, 0x6f8b, 0xe2d7, 0xf705, 0x7a59, 0x361e, 0xbb42,
      0x9b39, 0x1665, 0x5a22, 0xd77e, 0xc2ac, 0x4ff0, 0x03b7, 0x8eeb,
      0x2813, 0xa54f, 0xe908, 0x6454, 0x7186, 0xfcda, 0xb09d, 0x3dc1,
      0x26ce, 0xab92, 0xe7d5, 0x6a89, 0x7f5b, 0xf207, 0xbe40, 0x331c,
      0x95e4, 0x18b8, 0x54ff, 0xd9a3, 0xcc71, 0x412d, 0x0d6a, 0x8036,
      0x3b74, 0xb628, 0xfa6f, 0x7733, 0x62e1, 0xefbd, 0xa3fa, 0x2ea6,
      0x885e, 0x0502, 0x4945, 0xc419, 0xd1cb, 0x5c97, 0x10d0, 0x9d8c,
      0x8683, 0x0bdf, 0x4798, 0xcac4, 0xdf16, 0x524a, 0x1e0d, 0x9351,
      0x35a9, 0xb8f5, 0xf4b2, 0x79ee, 0x6c3c, 0xe160, 0xad27, 0x207b,
      0xedd1, 0x608d, 0x2cca, 0xa196, 0xb444, 0x3918, 0x755f, 0xf803,
      0x5efb, 0xd3a7, 0x9fe0, 0x12bc, 0x076e, 0x8a32, 0xc675, 0x4b29,
      0x5026, 0xdd7a, 0x913d, 0x1c61, 0x09b3, 0x84ef, 0xc8a8, 0x45f4,
      0xe30c, 0x6e50, 0x2217, 0xaf4b, 0xba99, 0x37c5, 0x7b82, 0xf6de,
      0x4d9c, 0xc0c0, 0x8c87, 0x01db, 0x1409, 0x9955, 0xd512, 0x584e,
      0xfeb6, 0x73ea, 0x3fad, 0xb2f1, 0xa723, 0x2a7f, 0x6638, 0xeb64,
      0xf06b, 0x7d37, 0x3170, 0xbc2c, 0xa9fe, 0x24a2, 0x68e5, 0xe5b9,
      0x4341, 0xce1d, 0x825a, 0x0f06, 0x1ad4, 0x9788, 0xdbcf, 0x5693,
      0x76e8, 0xfbb4, 0xb7f3, 0x3aaf, 0x2f7d, 0xa221, 0xee66, 0x633a,
      0xc5c2, 0x489e, 0x04d9, 0x8985, 0x9c57, 0x110b, 0x5d4c, 0xd010,
      0xcb1f, 0x4643, 0x0a04, 0x8758, 0x928a, 0x1fd6, 0x5391, 0xdecd,
      0x7835, 0xf569, 0xb92e, 0x3472, 0x21a0, 0xacfc, 0xe0bb, 0x6de7,
      0xd6a5, 0x5bf9, 0x17be, 0x9ae2, 0x8f30, 0x026c, 0x4e2b, 0xc377,
      0x658f, 0xe8d3, 0xa494, 0x29c8, 0x3c1a, 0xb146, 0xfd01, 0x705d,
      0x6b52, 0xe60e, 0xaa49, 0x2715, 0x32c7, 0xbf9b, 0xf3dc, 0x7e80,
      0xd878, 0x5524, 0x1963, 0x943f, 0x81ed, 0x0cb1, 0x40f6, 0xcdaa };

  static CONSTEXPR uint16_t g_crc16_A097[256] = {
      0x0000, 0xf11b, 0x303d, 0xc126, 0x607a, 0x9161, 0x5047, 0xa15c,
      0xc0f4, 0x31ef, 0xf0c9, 0x01d2, 0xa08e, 0x5195, 0x90b3, 0x61a8,
      0x53e3, 0xa2f8, 0x63de, 0x92c5, 0x3399, 0xc282, 0x03a4, 0xf2bf,
      0x9317, 0x620c, 0xa32a, 0x5231, 0xf36d, 0x0276, 0xc350, 0x324b,
      0xa7c6, 0x56dd, 0x97fb, 0x66e0, 0xc7bc, 0x36a7, 0xf781, 0x069a,
      0x6732, 0x9629, 0x570f, 0xa614, 0x0748, 0xf653, 0x3775, 0xc66e,
      0xf425, 0x053e, 0xc418, 0x3503, 0x945f, 0x6544, 0xa462, 0x5579,
      0x34d1, 0xc5ca, 0x04ec, 0xf5f7, 0x54ab, 0xa5b0, 0x6496, 0x958d,
      0x9d87, 0x6c9c, 0xadba, 0x5ca1, 0xfdfd, 0x0ce6, 0xcdc0, 0x3cdb,
      0x5d73, 0xac68, 0x6d4e, 0x9c55, 0x3d09, 0xcc12, 0x0d34, 0xfc2f,
      0xce64, 0x3f7f, 0xfe59, 0x0f42, 0xae1e, 0x5f05, 0x9e23, 0x6f38,
      0x0e90, 0xff8b, 0x3ead, 0xcfb6, 0x6eea, 0x9ff1, 0x5ed7, 0xafcc,
      0x3a41, 0xcb5a, 0x0a7c, 0xfb67, 0x5a3b, 0xab20, 0x6a06, 0x9b1d,
      0xfab5, 0x0bae, 0xca88, 0x3b93, 0x9acf, 0x6bd4, 0xaaf2, 0x5be9,
      0x69a2, 0x98b9, 0x599f, 0xa884, 0x09d8, 0xf8c3, 0x39e5, 0xc8fe,
      0xa956, 0x584d, 0x996b, 0x6870, 0xc92c, 0x3837, 0xf911, 0x080a,
      0xe905, 0x181e, 0xd938, 0x2823, 0x897f, 0x7864, 0xb942, 0x4859,
      0x29f1, 0xd8ea, 0x19cc, 0xe8d7, 0x498b, 0xb890, 0x79b6, 0x88ad,
      0xbae6, 0x4bfd, 0x8adb, 0x7bc0, 0xda9c, 0x2b87, 0xeaa1, 0x1bba,
      0x7a12, 0x8b09, 0x4a2f, 0xbb34, 0x1a68, 0xeb73, 0x2a55, 0xdb4e,
      0x4ec3, 0xbfd8, 0x7efe, 0x8fe5, 0x2eb9, 0xdfa2, 0x1e84, 0xef9f,
      0x8e37, 0x7f2c, 0xbe0a, 0x4f11, 0xee4d, 0x1f56, 0xde70, 0x2f6b,
      0x1d20, 0xec3b, 0x2d1d, 0xdc06, 0x7d5a, 0x8c41, 0x4d67, 0xbc7c,
      0xddd4, 0x2ccf, 0xede9, 0x1cf2, 0xbdae, 0x4cb5, 0x8d93, 0x7c88,
      0x7482, 0x8599, 0x44bf, 0xb5a4, 0x14f8, 0xe5e3, 0x24c5, 0xd5de,
      0xb476, 0x456d, 0x844b, 0x7550, 0xd40c, 0x2517, 0xe431, 0x152a,
      0x2761, 0xd67a, 0x175c, 0xe647, 0x471b, 0xb600, 0x7726, 0x863d,
      0xe795, 0x168e, 0xd7a8, 0x26b3, 0x87ef, 0x76f4, 0xb7d2, 0x46c9,
      0xd344, 0x225f, 0xe379, 0x1262, 0xb33e, 0x4225, 0x8303, 0x7218,
      0x13b0, 0xe2ab, 0x238d, 0xd296, 0x73ca, 0x82d1, 0x43f7, 0xb2ec,
      0x80a7, 0x71bc, 0xb09a, 0x4181, 0xe0dd, 0x11c6, 0xd0e0, 0x21fb,
      0x4053, 0xb148, 0x706e, 0x8175, 0x2029, 0xd132, 0x1014, 0xe10f
  };

  static CONSTEXPR uint32_t g_crc24_864CFB[256] = {
      0x000000, 0x25e2cc, 0x4bc598, 0x6e2754, 0x978b30, 0xb269fc,
      0xdc4ea8, 0xf9ac64, 0x9172a3, 0xb4906f, 0xdab73b, 0xff55f7,
      0x06f993, 0x231b5f, 0x4d3c0b, 0x68dec7, 0x9c8185, 0xb96349,
      0xd7441d, 0xf2a6d1, 0x0b0ab5, 0x2ee879, 0x40cf2d, 0x652de1,
      0x0df326, 0x2811ea, 0x4636be, 0x63d472, 0x9a7816, 0xbf9ada,
      0xd1bd8e, 0xf45f42, 0x8767c9, 0xa28505, 0xcca251, 0xe9409d,
      0x10ecf9, 0x350e35, 0x5b2961, 0x7ecbad, 0x16156a, 0x33f7a6,
      0x5dd0f2, 0x78323e, 0x819e5a, 0xa47c96, 0xca5bc2, 0xefb90e,
      0x1be64c, 0x3e0480, 0x5023d4, 0x75c118, 0x8c6d7c, 0xa98fb0,
      0xc7a8e4, 0xe24a28, 0x8a94ef, 0xaf7623, 0xc15177, 0xe4b3bb,
      0x1d1fdf, 0x38fd13, 0x56da47, 0x73388b, 0xb0ab51, 0x95499d,
      0xfb6ec9, 0xde8c05, 0x272061, 0x02c2ad, 0x6ce5f9, 0x490735,
      0x21d9f2, 0x043b3e, 0x6a1c6a, 0x4ffea6, 0xb652c2, 0x93b00e,
      0xfd975a, 0xd87596, 0x2c2ad4, 0x09c818, 0x67ef4c, 0x420d80,
      0xbba1e4, 0x9e4328, 0xf0647c, 0xd586b0, 0xbd5877, 0x98babb,
      0xf69def, 0xd37f23, 0x2ad347, 0x0f318b, 0x6116df, 0x44f413,
      0x37cc98, 0x122e54, 0x7c0900, 0x59ebcc, 0xa047a8, 0x85a564,
      0xeb8230, 0xce60fc, 0xa6be3b, 0x835cf7, 0xed7ba3, 0xc8996f,
      0x31350b, 0x14d7c7, 0x7af093, 0x5f125f, 0xab4d1d, 0x8eafd1,
      0xe08885, 0xc56a49, 0x3cc62d, 0x1924e1, 0x7703b5, 0x52e179,
      0x3a3fbe, 0x1fdd72, 0x71fa26, 0x5418ea, 0xadb48e, 0x885642,
      0xe67116, 0xc393da, 0xdf3261, 0xfad0ad, 0x94f7f9, 0xb11535,
      0x48b951, 0x6d5b9d, 0x037cc9, 0x269e05, 0x4e40c2, 0x6ba20e,
      0x05855a, 0x206796, 0xd9cbf2, 0xfc293e, 0x920e6a, 0xb7eca6,
      0x43b3e4, 0x665128, 0x08767c, 0x2d94b0, 0xd438d4, 0xf1da18,
      0x9ffd4c, 0xba1f80, 0xd2c147, 0xf7238b, 0x9904df, 0xbce613,
      0x454a77, 0x60a8bb, 0x0e8fef, 0x2b6d23, 0x5855a8, 0x7db764,
      0x139030, 0x3672fc, 0xcfde98, 0xea3c54, 0x841b00, 0xa1f9cc,
      0xc9270b, 0xecc5c7, 0x82e293, 0xa7005f, 0x5eac3b, 0x7b4ef7,
      0x1569a3, 0x308b6f, 0xc4d42d, 0xe136e1, 0x8f11b5, 0xaaf379,
      0x535f1d, 0x76bdd1, 0x189a85, 0x3d7849, 0x55a68e, 0x704442,
      0x1e6316, 0x3b81da, 0xc22dbe, 0xe7cf72, 0x89e826, 0xac0aea,
      0x6f9930, 0x4a7bfc, 0x245ca8, 0x01be64, 0xf81200, 0xddf0cc,
      0xb3d798, 0x963554, 0xfeeb93, 0xdb095f, 0xb52e0b, 0x90ccc7,
      0x6960a3, 0x4c826f, 0x22a53b, 0x0747f7, 0xf318b5, 0xd6fa79,
      0xb8dd2d, 0x9d3fe1, 0x649385, 0x417149, 0x2f561d, 0x0ab4d1,
      0x626a16, 0x4788da, 0x29af8e, 0x0c4d42, 0xf5e126, 0xd003ea,
      0xbe24be, 0x9bc672, 0xe8fef9, 0xcd1c35, 0xa33b61, 0x86d9ad,
      0x7f75c9, 0x5a9705, 0x34b051, 0x11529d, 0x798c5a, 0x5c6e96,
      0x3249c2, 0x17ab0e, 0xee076a, 0xcbe5a6, 0xa5c2f2, 0x80203e,
      0x747f7c, 0x519db0, 0x3fbae4, 0x1a5828, 0xe3f44c, 0xc61680,
      0xa831d4, 0x8dd318, 0xe50ddf, 0xc0ef13, 0xaec847, 0x8b2a8b,
      0x7286ef, 0x576423, 0x394377, 0x1ca1bb
  };

  static CONSTEXPR uint32_t g_crc24_5D6DCB[256] = {
      0x000000, 0x33d776, 0x67aeec, 0x54799a, 0xcf5dd8, 0xfc8aae,
      0xa8f334, 0x9b2442, 0x39d6c5, 0x0a01b3, 0x5e7829, 0x6daf5f,
      0xf68b1d, 0xc55c6b, 0x9125f1, 0xa2f287, 0x73ad8a, 0x407afc,
      0x140366, 0x27d410, 0xbcf052, 0x8f2724, 0xdb5ebe, 0xe889c8,
      0x4a7b4f, 0x79ac39, 0x2dd5a3, 0x1e02d5, 0x852697, 0xb6f1e1,
      0xe2887b, 0xd15f0d, 0xe75b14, 0xd48c62, 0x80f5f8, 0xb3228e,
      0x2806cc, 0x1bd1ba, 0x4fa820, 0x7c7f56, 0xde8dd1, 0xed5aa7,
      0xb9233d, 0x8af44b, 0x11d009, 0x22077f, 0x767ee5, 0x45a993,
      0x94f69e, 0xa721e8, 0xf35872, 0xc08f04, 0x5bab46, 0x687c30,
      0x3c05aa, 0x0fd2dc, 0xad205b, 0x9ef72d, 0xca8eb7, 0xf959c1,
      0x627d83, 0x51aaf5, 0x05d36f, 0x360419, 0x69db5d, 0x5a0c2b,
      0x0e75b1, 0x3da2c7, 0xa68685, 0x9551f3, 0xc12869, 0xf2ff1f,
      0x500d98, 0x63daee, 0x37a374, 0x047402, 0x9f5040, 0xac8736,
      0xf8feac, 0xcb29da, 0x1a76d7, 0x29a1a1, 0x7dd83b, 0x4e0f4d,
      0xd52b0f, 0xe6fc79, 0xb285e3, 0x815295, 0x23a012, 0x107764,
      0x440efe, 0x77d988, 0xecfdca, 0xdf2abc, 0x8b5326, 0xb88450,
      0x8e8049, 0xbd573f, 0xe92ea5, 0xdaf9d3, 0x41dd91, 0x720ae7,
      0x26737d, 0x15a40b, 0xb7568c, 0x8481fa, 0xd0f860, 0xe32f16,
      0x780b54, 0x4bdc22, 0x1fa5b8, 0x2c72ce, 0xfd2dc3, 0xcefab5,
      0x9a832f, 0xa95459, 0x32701b, 0x01a76d, 0x55def7, 0x660981,
      0xc4fb06, 0xf72c70, 0xa355ea, 0x90829c, 0x0ba6de, 0x3871a8,
      0x6c0832, 0x5fdf44, 0xd3b6ba, 0xe061cc, 0xb41856, 0x87cf20,
      0x1ceb62, 0x2f3c14, 0x7b458e, 0x4892f8, 0xea607f, 0xd9b709,
      0x8dce93, 0xbe19e5, 0x253da7, 0x16ead1, 0x42934b, 0x71443d,
      0xa01b30, 0x93cc46, 0xc7b5dc, 0xf462aa, 0x6f46e8, 0x5c919e,
      0x08e804, 0x3b3f72, 0x99cdf5, 0xaa1a83, 0xfe6319, 0xcdb46f,
      0x56902d, 0x65475b, 0x313ec1, 0x02e9b7, 0x34edae, 0x073ad8,
      0x534342, 0x609434, 0xfbb076, 0xc86700, 0x9c1e9a, 0xafc9ec,
      0x0d3b6b, 0x3eec1d, 0x6a9587, 0x5942f1, 0xc266b3, 0xf1b1c5,
      0xa5c85f, 0x961f29, 0x474024, 0x749752, 0x20eec8, 0x1339be,
      0x881dfc, 0xbbca8a, 0xefb310, 0xdc6466, 0x7e96e1, 0x4d4197,
      0x19380d, 0x2aef7b, 0xb1cb39, 0x821c4f, 0xd665d5, 0xe5b2a3,
      0xba6de7, 0x89ba91, 0xddc30b, 0xee147d, 0x75303f, 0x46e749,
      0x129ed3, 0x2149a5, 0x83bb22, 0xb06c54, 0xe415ce, 0xd7c2b8,
      0x4ce6fa, 0x7f318c, 0x2b4816, 0x189f60, 0xc9c06d, 0xfa171b,
      0xae6e81, 0x9db9f7, 0x069db5, 0x354ac3, 0x613359, 0x52e42f,
      0xf016a8, 0xc3c1de, 0x97b844, 0xa46f32, 0x3f4b70, 0x0c9c06,
      0x58e59c, 0x6b32ea, 0x5d36f3, 0x6ee185, 0x3a981f, 0x094f69,
      0x926b2b, 0xa1bc5d, 0xf5c5c7, 0xc612b1, 0x64e036, 0x573740,
      0x034eda, 0x3099ac, 0xabbdee, 0x986a98, 0xcc1302, 0xffc474,
      0x2e9b79, 0x1d4c0f, 0x493595, 0x7ae2e3, 0xe1c6a1, 0xd211d7,
      0x86684d, 0xb5bf3b, 0x174dbc, 0x249aca, 0x70e350, 0x433426,
      0xd81064, 0xebc712, 0xbfbe88, 0x8c69fe
  };

  static CONSTEXPR uint32_t g_crc32_04C11DB7[256] =
  {
      0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
      0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
      0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
      0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
      0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
      0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
      0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
      0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
      0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
      0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
      0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
      0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
      0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
      0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
      0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
      0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
      0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
      0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
      0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
      0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
      0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
      0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
      0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
      0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
      0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
      0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
      0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
      0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
      0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
      0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
      0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
      0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
      0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
      0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
      0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
      0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
      0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
      0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
      0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
      0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
      0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
      0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
      0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
      0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
      0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
      0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
      0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
      0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
      0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
      0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
      0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
      0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
      0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
      0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
      0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
      0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
      0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
      0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
      0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
      0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
      0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
      0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
      0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
      0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
  };

  static CONSTEXPR uint32_t g_crc32_1EDC6F41[256] =
  {
      0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4,
      0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb,
      0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b,
      0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24,
      0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b,
      0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384,
      0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54,
      0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b,
      0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a,
      0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35,
      0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5,
      0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa,
      0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45,
      0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a,
      0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a,
      0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595,
      0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48,
      0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957,
      0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687,
      0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198,
      0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927,
      0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38,
      0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8,
      0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7,
      0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096,
      0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789,
      0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859,
      0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46,
      0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9,
      0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6,
      0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36,
      0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829,
      0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c,
      0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93,
      0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043,
      0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c,
      0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3,
      0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc,
      0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c,
      0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033,
      0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652,
      0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d,
      0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d,
      0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982,
      0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d,
      0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622,
      0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2,
      0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed,
      0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530,
      0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f,
      0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff,
      0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0,
      0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f,
      0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540,
      0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90,
      0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f,
      0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee,
      0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1,
      0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321,
      0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e,
      0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81,
      0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e,
      0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e,
      0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351
  };

  static CONSTEXPR uint32_t g_crc32_A833982B[256] =
  {
      0x00000000, 0x2bddd04f, 0x57bba09e, 0x7c6670d1,
      0xaf77413c, 0x84aa9173, 0xf8cce1a2, 0xd31131ed,
      0xf6dd1a53, 0xdd00ca1c, 0xa166bacd, 0x8abb6a82,
      0x59aa5b6f, 0x72778b20, 0x0e11fbf1, 0x25cc2bbe,
      0x4589ac8d, 0x6e547cc2, 0x12320c13, 0x39efdc5c,
      0xeafeedb1, 0xc1233dfe, 0xbd454d2f, 0x96989d60,
      0xb354b6de, 0x98896691, 0xe4ef1640, 0xcf32c60f,
      0x1c23f7e2, 0x37fe27ad, 0x4b98577c, 0x60458733,
      0x8b13591a, 0xa0ce8955, 0xdca8f984, 0xf77529cb,
      0x24641826, 0x0fb9c869, 0x73dfb8b8, 0x580268f7,
      0x7dce4349, 0x56139306, 0x2a75e3d7, 0x01a83398,
      0xd2b90275, 0xf964d23a, 0x8502a2eb, 0xaedf72a4,
      0xce9af597, 0xe54725d8, 0x99215509, 0xb2fc8546,
      0x61edb4ab, 0x4a3064e4, 0x36561435, 0x1d8bc47a,
      0x3847efc4, 0x139a3f8b, 0x6ffc4f5a, 0x44219f15,
      0x9730aef8, 0xbced7eb7, 0xc08b0e66, 0xeb56de29,
      0xbe152a1f, 0x95c8fa50, 0xe9ae8a81, 0xc2735ace,
      0x11626b23, 0x3abfbb6c, 0x46d9cbbd, 0x6d041bf2,
      0x48c8304c, 0x6315e003, 0x1f7390d2, 0x34ae409d,
      0xe7bf7170, 0xcc62a13f, 0xb004d1ee, 0x9bd901a1,
      0xfb9c8692, 0xd04156dd, 0xac27260c, 0x87faf643,
      0x54ebc7ae, 0x7f3617e1, 0x03506730, 0x288db77f,
      0x0d419cc1, 0x269c4c8e, 0x5afa3c5f, 0x7127ec10,
      0xa236ddfd, 0x89eb0db2, 0xf58d7d63, 0xde50ad2c,
      0x35067305, 0x1edba34a, 0x62bdd39b, 0x496003d4,
      0x9a713239, 0xb1ace276, 0xcdca92a7, 0xe61742e8,
      0xc3db6956, 0xe806b919, 0x9460c9c8, 0xbfbd1987,
      0x6cac286a, 0x4771f825, 0x3b1788f4, 0x10ca58bb,
      0x708fdf88, 0x5b520fc7, 0x27347f16, 0x0ce9af59,
      0xdff89eb4, 0xf4254efb, 0x88433e2a, 0xa39eee65,
      0x8652c5db, 0xad8f1594, 0xd1e96545, 0xfa34b50a,
      0x292584e7, 0x02f854a8, 0x7e9e2479, 0x5543f436,
      0xd419cc15, 0xffc41c5a, 0x83a26c8b, 0xa87fbcc4,
      0x7b6e8d29, 0x50b35d66, 0x2cd52db7, 0x0708fdf8,
      0x22c4d646, 0x09190609, 0x757f76d8, 0x5ea2a697,
      0x8db3977a, 0xa66e4735, 0xda0837e4, 0xf1d5e7ab,
      0x91906098, 0xba4db0d7, 0xc62bc006, 0xedf61049,
      0x3ee721a4, 0x153af1eb, 0x695c813a, 0x42815175,
      0x674d7acb, 0x4c90aa84, 0x30f6da55, 0x1b2b0a1a,
      0xc83a3bf7, 0xe3e7ebb8, 0x9f819b69, 0xb45c4b26,
      0x5f0a950f, 0x74d74540, 0x08b13591, 0x236ce5de,
      0xf07dd433, 0xdba0047c, 0xa7c674ad, 0x8c1ba4e2,
      0xa9d78f5c, 0x820a5f13, 0xfe6c2fc2, 0xd5b1ff8d,
      0x06a0ce60, 0x2d7d1e2f, 0x511b6efe, 0x7ac6beb1,
      0x1a833982, 0x315ee9cd, 0x4d38991c, 0x66e54953,
      0xb5f478be, 0x9e29a8f1, 0xe24fd820, 0xc992086f,
      0xec5e23d1, 0xc783f39e, 0xbbe5834f, 0x90385300,
      0x432962ed, 0x68f4b2a2, 0x1492c273, 0x3f4f123c,
      0x6a0ce60a, 0x41d13645, 0x3db74694, 0x166a96db,
      0xc57ba736, 0xeea67779, 0x92c007a8, 0xb91dd7e7,
      0x9cd1fc59, 0xb70c2c16, 0xcb6a5cc7, 0xe0b78c88,
      0x33a6bd65, 0x187b6d2a, 0x641d1dfb, 0x4fc0cdb4,
      0x2f854a87, 0x04589ac8, 0x783eea19, 0x53e33a56,
      0x80f20bbb, 0xab2fdbf4, 0xd749ab25, 0xfc947b6a,
      0xd95850d4, 0xf285809b, 0x8ee3f04a, 0xa53e2005,
      0x762f11e8, 0x5df2c1a7, 0x2194b176, 0x0a496139,
      0xe11fbf10, 0xcac26f5f, 0xb6a41f8e, 0x9d79cfc1,
      0x4e68fe2c, 0x65b52e63, 0x19d35eb2, 0x320e8efd,
      0x17c2a543, 0x3c1f750c, 0x407905dd, 0x6ba4d592,
      0xb8b5e47f, 0x93683430, 0xef0e44e1, 0xc4d394ae,
      0xa496139d, 0x8f4bc3d2, 0xf32db303, 0xd8f0634c,
      0x0be152a1, 0x203c82ee, 0x5c5af23f, 0x77872270,
      0x524b09ce, 0x7996d981, 0x05f0a950, 0x2e2d791f,
      0xfd3c48f2, 0xd6e198bd, 0xaa87e86c, 0x815a3823
  };

  static CONSTEXPR uint32_t g_crc32_814141AB[256] =
  {
      0x00000000, 0x999a0002, 0x98310507, 0x01ab0505,
      0x9b670f0d, 0x02fd0f0f, 0x03560a0a, 0x9acc0a08,
      0x9dcb1b19, 0x04511b1b, 0x05fa1e1e, 0x9c601e1c,
      0x06ac1414, 0x9f361416, 0x9e9d1113, 0x07071111,
      0x90933331, 0x09093333, 0x08a23636, 0x91383634,
      0x0bf43c3c, 0x926e3c3e, 0x93c5393b, 0x0a5f3939,
      0x0d582828, 0x94c2282a, 0x95692d2f, 0x0cf32d2d,
      0x963f2725, 0x0fa52727, 0x0e0e2222, 0x97942220,
      0x8a236361, 0x13b96363, 0x12126666, 0x8b886664,
      0x11446c6c, 0x88de6c6e, 0x8975696b, 0x10ef6969,
      0x17e87878, 0x8e72787a, 0x8fd97d7f, 0x16437d7d,
      0x8c8f7775, 0x15157777, 0x14be7272, 0x8d247270,
      0x1ab05050, 0x832a5052, 0x82815557, 0x1b1b5555,
      0x81d75f5d, 0x184d5f5f, 0x19e65a5a, 0x807c5a58,
      0x877b4b49, 0x1ee14b4b, 0x1f4a4e4e, 0x86d04e4c,
      0x1c1c4444, 0x85864446, 0x842d4143, 0x1db74141,
      0xbf43c3c1, 0x26d9c3c3, 0x2772c6c6, 0xbee8c6c4,
      0x2424cccc, 0xbdbeccce, 0xbc15c9cb, 0x258fc9c9,
      0x2288d8d8, 0xbb12d8da, 0xbab9dddf, 0x2323dddd,
      0xb9efd7d5, 0x2075d7d7, 0x21ded2d2, 0xb844d2d0,
      0x2fd0f0f0, 0xb64af0f2, 0xb7e1f5f7, 0x2e7bf5f5,
      0xb4b7fffd, 0x2d2dffff, 0x2c86fafa, 0xb51cfaf8,
      0xb21bebe9, 0x2b81ebeb, 0x2a2aeeee, 0xb3b0eeec,
      0x297ce4e4, 0xb0e6e4e6, 0xb14de1e3, 0x28d7e1e1,
      0x3560a0a0, 0xacfaa0a2, 0xad51a5a7, 0x34cba5a5,
      0xae07afad, 0x379dafaf, 0x3636aaaa, 0xafacaaa8,
      0xa8abbbb9, 0x3131bbbb, 0x309abebe, 0xa900bebc,
      0x33ccb4b4, 0xaa56b4b6, 0xabfdb1b3, 0x3267b1b1,
      0xa5f39391, 0x3c699393, 0x3dc29696, 0xa4589694,
      0x3e949c9c, 0xa70e9c9e, 0xa6a5999b, 0x3f3f9999,
      0x38388888, 0xa1a2888a, 0xa0098d8f, 0x39938d8d,
      0xa35f8785, 0x3ac58787, 0x3b6e8282, 0xa2f48280,
      0xd5828281, 0x4c188283, 0x4db38786, 0xd4298784,
      0x4ee58d8c, 0xd77f8d8e, 0xd6d4888b, 0x4f4e8889,
      0x48499998, 0xd1d3999a, 0xd0789c9f, 0x49e29c9d,
      0xd32e9695, 0x4ab49697, 0x4b1f9392, 0xd2859390,
      0x4511b1b0, 0xdc8bb1b2, 0xdd20b4b7, 0x44bab4b5,
      0xde76bebd, 0x47ecbebf, 0x4647bbba, 0xdfddbbb8,
      0xd8daaaa9, 0x4140aaab, 0x40ebafae, 0xd971afac,
      0x43bda5a4, 0xda27a5a6, 0xdb8ca0a3, 0x4216a0a1,
      0x5fa1e1e0, 0xc63be1e2, 0xc790e4e7, 0x5e0ae4e5,
      0xc4c6eeed, 0x5d5ceeef, 0x5cf7ebea, 0xc56debe8,
      0xc26afaf9, 0x5bf0fafb, 0x5a5bfffe, 0xc3c1fffc,
      0x590df5f4, 0xc097f5f6, 0xc13cf0f3, 0x58a6f0f1,
      0xcf32d2d1, 0x56a8d2d3, 0x5703d7d6, 0xce99d7d4,
      0x5455dddc, 0xcdcfddde, 0xcc64d8db, 0x55fed8d9,
      0x52f9c9c8, 0xcb63c9ca, 0xcac8cccf, 0x5352cccd,
      0xc99ec6c5, 0x5004c6c7, 0x51afc3c2, 0xc835c3c0,
      0x6ac14140, 0xf35b4142, 0xf2f04447, 0x6b6a4445,
      0xf1a64e4d, 0x683c4e4f, 0x69974b4a, 0xf00d4b48,
      0xf70a5a59, 0x6e905a5b, 0x6f3b5f5e, 0xf6a15f5c,
      0x6c6d5554, 0xf5f75556, 0xf45c5053, 0x6dc65051,
      0xfa527271, 0x63c87273, 0x62637776, 0xfbf97774,
      0x61357d7c, 0xf8af7d7e, 0xf904787b, 0x609e7879,
      0x67996968, 0xfe03696a, 0xffa86c6f, 0x66326c6d,
      0xfcfe6665, 0x65646667, 0x64cf6362, 0xfd556360,
      0xe0e22221, 0x79782223, 0x78d32726, 0xe1492724,
      0x7b852d2c, 0xe21f2d2e, 0xe3b4282b, 0x7a2e2829,
      0x7d293938, 0xe4b3393a, 0xe5183c3f, 0x7c823c3d,
      0xe64e3635, 0x7fd43637, 0x7e7f3332, 0xe7e53330,
      0x70711110, 0xe9eb1112, 0xe8401417, 0x71da1415,
      0xeb161e1d, 0x728c1e1f, 0x73271b1a, 0xeabd1b18,
      0xedba0a09, 0x74200a0b, 0x758b0f0e, 0xec110f0c,
      0x76dd0504, 0xef470506, 0xeeec0003, 0x77760001
  };

  static CONSTEXPR uint32_t g_crc32_741B8CD7[256] =
  {
      0x00000000, 0x9695c4ca, 0xfb4839c9, 0x6dddfd03,
      0x20f3c3cf, 0xb6660705, 0xdbbbfa06, 0x4d2e3ecc,
      0x41e7879e, 0xd7724354, 0xbaafbe57, 0x2c3a7a9d,
      0x61144451, 0xf781809b, 0x9a5c7d98, 0x0cc9b952,
      0x83cf0f3c, 0x155acbf6, 0x788736f5, 0xee12f23f,
      0xa33cccf3, 0x35a90839, 0x5874f53a, 0xcee131f0,
      0xc22888a2, 0x54bd4c68, 0x3960b16b, 0xaff575a1,
      0xe2db4b6d, 0x744e8fa7, 0x199372a4, 0x8f06b66e,
      0xd1fdae25, 0x47686aef, 0x2ab597ec, 0xbc205326,
      0xf10e6dea, 0x679ba920, 0x0a465423, 0x9cd390e9,
      0x901a29bb, 0x068fed71, 0x6b521072, 0xfdc7d4b8,
      0xb0e9ea74, 0x267c2ebe, 0x4ba1d3bd, 0xdd341777,
      0x5232a119, 0xc4a765d3, 0xa97a98d0, 0x3fef5c1a,
      0x72c162d6, 0xe454a61c, 0x89895b1f, 0x1f1c9fd5,
      0x13d52687, 0x8540e24d, 0xe89d1f4e, 0x7e08db84,
      0x3326e548, 0xa5b32182, 0xc86edc81, 0x5efb184b,
      0x7598ec17, 0xe30d28dd, 0x8ed0d5de, 0x18451114,
      0x556b2fd8, 0xc3feeb12, 0xae231611, 0x38b6d2db,
      0x347f6b89, 0xa2eaaf43, 0xcf375240, 0x59a2968a,
      0x148ca846, 0x82196c8c, 0xefc4918f, 0x79515545,
      0xf657e32b, 0x60c227e1, 0x0d1fdae2, 0x9b8a1e28,
      0xd6a420e4, 0x4031e42e, 0x2dec192d, 0xbb79dde7,
      0xb7b064b5, 0x2125a07f, 0x4cf85d7c, 0xda6d99b6,
      0x9743a77a, 0x01d663b0, 0x6c0b9eb3, 0xfa9e5a79,
      0xa4654232, 0x32f086f8, 0x5f2d7bfb, 0xc9b8bf31,
      0x849681fd, 0x12034537, 0x7fdeb834, 0xe94b7cfe,
      0xe582c5ac, 0x73170166, 0x1ecafc65, 0x885f38af,
      0xc5710663, 0x53e4c2a9, 0x3e393faa, 0xa8acfb60,
      0x27aa4d0e, 0xb13f89c4, 0xdce274c7, 0x4a77b00d,
      0x07598ec1, 0x91cc4a0b, 0xfc11b708, 0x6a8473c2,
      0x664dca90, 0xf0d80e5a, 0x9d05f359, 0x0b903793,
      0x46be095f, 0xd02bcd95, 0xbdf63096, 0x2b63f45c,
      0xeb31d82e, 0x7da41ce4, 0x1079e1e7, 0x86ec252d,
      0xcbc21be1, 0x5d57df2b, 0x308a2228, 0xa61fe6e2,
      0xaad65fb0, 0x3c439b7a, 0x519e6679, 0xc70ba2b3,
      0x8a259c7f, 0x1cb058b5, 0x716da5b6, 0xe7f8617c,
      0x68fed712, 0xfe6b13d8, 0x93b6eedb, 0x05232a11,
      0x480d14dd, 0xde98d017, 0xb3452d14, 0x25d0e9de,
      0x2919508c, 0xbf8c9446, 0xd2516945, 0x44c4ad8f,
      0x09ea9343, 0x9f7f5789, 0xf2a2aa8a, 0x64376e40,
      0x3acc760b, 0xac59b2c1, 0xc1844fc2, 0x57118b08,
      0x1a3fb5c4, 0x8caa710e, 0xe1778c0d, 0x77e248c7,
      0x7b2bf195, 0xedbe355f, 0x8063c85c, 0x16f60c96,
      0x5bd8325a, 0xcd4df690, 0xa0900b93, 0x3605cf59,
      0xb9037937, 0x2f96bdfd, 0x424b40fe, 0xd4de8434,
      0x99f0baf8, 0x0f657e32, 0x62b88331, 0xf42d47fb,
      0xf8e4fea9, 0x6e713a63, 0x03acc760, 0x953903aa,
      0xd8173d66, 0x4e82f9ac, 0x235f04af, 0xb5cac065,
      0x9ea93439, 0x083cf0f3, 0x65e10df0, 0xf374c93a,
      0xbe5af7f6, 0x28cf333c, 0x4512ce3f, 0xd3870af5,
      0xdf4eb3a7, 0x49db776d, 0x24068a6e, 0xb2934ea4,
      0xffbd7068, 0x6928b4a2, 0x04f549a1, 0x92608d6b,
      0x1d663b05, 0x8bf3ffcf, 0xe62e02cc, 0x70bbc606,
      0x3d95f8ca, 0xab003c00, 0xc6ddc103, 0x504805c9,
      0x5c81bc9b, 0xca147851, 0xa7c98552, 0x315c4198,
      0x7c727f54, 0xeae7bb9e, 0x873a469d, 0x11af8257,
      0x4f549a1c, 0xd9c15ed6, 0xb41ca3d5, 0x2289671f,
      0x6fa759d3, 0xf9329d19, 0x94ef601a, 0x027aa4d0,
      0x0eb31d82, 0x9826d948, 0xf5fb244b, 0x636ee081,
      0x2e40de4d, 0xb8d51a87, 0xd508e784, 0x439d234e,
      0xcc9b9520, 0x5a0e51ea, 0x37d3ace9, 0xa1466823,
      0xec6856ef, 0x7afd9225, 0x17206f26, 0x81b5abec,
      0x8d7c12be, 0x1be9d674, 0x76342b77, 0xe0a1efbd,
      0xad8fd171, 0x3b1a15bb, 0x56c7e8b8, 0xc0522c72
  };

  static CONSTEXPR uint32_t g_crc32_000000AF[256] =
  {
      0x00000000, 0x01ea0000, 0x03d40000, 0x023e0000,
      0x07a80000, 0x06420000, 0x047c0000, 0x05960000,
      0x0f500000, 0x0eba0000, 0x0c840000, 0x0d6e0000,
      0x08f80000, 0x09120000, 0x0b2c0000, 0x0ac60000,
      0x1ea00000, 0x1f4a0000, 0x1d740000, 0x1c9e0000,
      0x19080000, 0x18e20000, 0x1adc0000, 0x1b360000,
      0x11f00000, 0x101a0000, 0x12240000, 0x13ce0000,
      0x16580000, 0x17b20000, 0x158c0000, 0x14660000,
      0x3d400000, 0x3caa0000, 0x3e940000, 0x3f7e0000,
      0x3ae80000, 0x3b020000, 0x393c0000, 0x38d60000,
      0x32100000, 0x33fa0000, 0x31c40000, 0x302e0000,
      0x35b80000, 0x34520000, 0x366c0000, 0x37860000,
      0x23e00000, 0x220a0000, 0x20340000, 0x21de0000,
      0x24480000, 0x25a20000, 0x279c0000, 0x26760000,
      0x2cb00000, 0x2d5a0000, 0x2f640000, 0x2e8e0000,
      0x2b180000, 0x2af20000, 0x28cc0000, 0x29260000,
      0x7a800000, 0x7b6a0000, 0x79540000, 0x78be0000,
      0x7d280000, 0x7cc20000, 0x7efc0000, 0x7f160000,
      0x75d00000, 0x743a0000, 0x76040000, 0x77ee0000,
      0x72780000, 0x73920000, 0x71ac0000, 0x70460000,
      0x64200000, 0x65ca0000, 0x67f40000, 0x661e0000,
      0x63880000, 0x62620000, 0x605c0000, 0x61b60000,
      0x6b700000, 0x6a9a0000, 0x68a40000, 0x694e0000,
      0x6cd80000, 0x6d320000, 0x6f0c0000, 0x6ee60000,
      0x47c00000, 0x462a0000, 0x44140000, 0x45fe0000,
      0x40680000, 0x41820000, 0x43bc0000, 0x42560000,
      0x48900000, 0x497a0000, 0x4b440000, 0x4aae0000,
      0x4f380000, 0x4ed20000, 0x4cec0000, 0x4d060000,
      0x59600000, 0x588a0000, 0x5ab40000, 0x5b5e0000,
      0x5ec80000, 0x5f220000, 0x5d1c0000, 0x5cf60000,
      0x56300000, 0x57da0000, 0x55e40000, 0x540e0000,
      0x51980000, 0x50720000, 0x524c0000, 0x53a60000,
      0xf5000000, 0xf4ea0000, 0xf6d40000, 0xf73e0000,
      0xf2a80000, 0xf3420000, 0xf17c0000, 0xf0960000,
      0xfa500000, 0xfbba0000, 0xf9840000, 0xf86e0000,
      0xfdf80000, 0xfc120000, 0xfe2c0000, 0xffc60000,
      0xeba00000, 0xea4a0000, 0xe8740000, 0xe99e0000,
      0xec080000, 0xede20000, 0xefdc0000, 0xee360000,
      0xe4f00000, 0xe51a0000, 0xe7240000, 0xe6ce0000,
      0xe3580000, 0xe2b20000, 0xe08c0000, 0xe1660000,
      0xc8400000, 0xc9aa0000, 0xcb940000, 0xca7e0000,
      0xcfe80000, 0xce020000, 0xcc3c0000, 0xcdd60000,
      0xc7100000, 0xc6fa0000, 0xc4c40000, 0xc52e0000,
      0xc0b80000, 0xc1520000, 0xc36c0000, 0xc2860000,
      0xd6e00000, 0xd70a0000, 0xd5340000, 0xd4de0000,
      0xd1480000, 0xd0a20000, 0xd29c0000, 0xd3760000,
      0xd9b00000, 0xd85a0000, 0xda640000, 0xdb8e0000,
      0xde180000, 0xdff20000, 0xddcc0000, 0xdc260000,
      0x8f800000, 0x8e6a0000, 0x8c540000, 0x8dbe0000,
      0x88280000, 0x89c20000, 0x8bfc0000, 0x8a160000,
      0x80d00000, 0x813a0000, 0x83040000, 0x82ee0000,
      0x87780000, 0x86920000, 0x84ac0000, 0x85460000,
      0x91200000, 0x90ca0000, 0x92f40000, 0x931e0000,
      0x96880000, 0x97620000, 0x955c0000, 0x94b60000,
      0x9e700000, 0x9f9a0000, 0x9da40000, 0x9c4e0000,
      0x99d80000, 0x98320000, 0x9a0c0000, 0x9be60000,
      0xb2c00000, 0xb32a0000, 0xb1140000, 0xb0fe0000,
      0xb5680000, 0xb4820000, 0xb6bc0000, 0xb7560000,
      0xbd900000, 0xbc7a0000, 0xbe440000, 0xbfae0000,
      0xba380000, 0xbbd20000, 0xb9ec0000, 0xb8060000,
      0xac600000, 0xad8a0000, 0xafb40000, 0xae5e0000,
      0xabc80000, 0xaa220000, 0xa81c0000, 0xa9f60000,
      0xa3300000, 0xa2da0000, 0xa0e40000, 0xa10e0000,
      0xa4980000, 0xa5720000, 0xa74c0000, 0xa6a60000
  };
}

#endif
